/* 
 * File:   main.c
 * Author: Groupe (Clément;Raphaël)
 *
 * Created on 21 janvier 2014, 09:38
 */

#include "callRPG.h"

//Fonction principale

int main(int argc, char* argv[]) {


    int i, j = 0;




    // Chargement de la fenête principale
    esdlCreateWindow("RPG", LENGTH * INCREASE, WIDTH * INCREASE);
    // Création d'une nouvelle structure de données
    struct UserData myData;
    struct peopleFond myDeco;

    // Sauvegarde des données utilisateurs
    esdlSetUserData(&myData);

    initMap();
    createBoard();
    //printMap();

    fondPremier();
    printWindows();
    // Chargement de l'image




    // Enregistrement auprès d'événements
    /* esdlAddListenerOnKeyUp(myData.marker, moveCallback);//(event);//, map)); // Lorsque l'on relache une touche du clavier alors que le marker à le focus, la fonction moveCallback est appelée
     esdlAddListenerOnFocus(myData.marker, markerFocusCallback); // Lorsque le marker obtient le focus (clique), la fonction markerFocusCallback est appelée
     esdlAddListenerOnBlur(myData.marker, markerBlurCallback); // Lorsque le marker perd le focus (clique), la fonction markerBlurCallback est appelée
     */

    // Enregistrement auprès d'événements
    esdlAddListenerOnKeyDown(myData.marker, moveCallbackDown); // Lorsque l'on enfonce une touche du clavier alors que le marker à le focus, la fonction moveCallback est appelée
    esdlAddListenerOnKeyUp(myData.marker, moveCallbackUp); // Lorsque l'on enfonce une touche du clavier alors que le marker à le focus, la fonction moveCallback est appelée    esdlAddListenerOnFocus(marker, markerFocusCallback); // Lorsque le marker obtient le focus (clique), la fonction markerFocusCallback est appelée

    esdlSetFrameRate(50);
    // Début du gestionnaire d'événement
    esdlEventLoop(renderCallback);
    //esdlEventLoop(NULL);

    // On quitte l'application
    // Libération de la mémoire

    for (i = 0; i < WIDTH; i++) {
        for (j = 0; j < LENGTH; j++) {
            esdlDeleteSprite(myData.wallSprite[i * INCREASE][j * INCREASE]);
        }
    }

    esdlDeleteSprite(myData.marker);
    esdlDeleteSprite(myDeco.c3po);
    esdlDeleteSprite(myDeco.vador);
    esdlDeleteSprite(myDeco.yoda);
    esdlDeleteSprite(myDeco.ecran);

    //esdlDeleteSprite(myData.marker);
    esdlCloseWindow();
    return 0;
}













